// 蜂窝蜜造平台生成代码，如手工更改，请添加到 .beeignore 忽略生成

package com.fowo.api.model.process.product;

import com.fowo.api.common.annotaion.DataObjectType;
import com.fowo.api.common.meta.MetaDataObject;
import com.fowo.api.common.meta.MetaDataObjects;
import com.fowo.api.common.model.PageSearch;
import com.fowo.api.common.mybatis.helper.PageSearchHelper;
import com.fowo.api.common.util.ListUtils;
import com.fowo.api.entity.ProcessProduct;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

@DataObjectType(ProcessProduct.class)
@Setter
@Getter
public class ProcessProductSearchParamPo extends PageSearch {

  private static MetaDataObject metaDataObject;

  @Override
  public void applySqlSegments() {
    if (metaDataObject == null) {
      metaDataObject =
        ListUtils.find(
          MetaDataObjects.getObjects(),
          o -> "ProcessProduct".equals(o.getName())
        );
    }
    PageSearchHelper.fillSqlSegments(this, metaDataObject);
  }

  @Override
  public void initFinal() {
    super.initFinal();
    applySqlSegments();
  }

  /**
   * 获取关联字段的查询表别名信息
   */
  @Override
  public Map<String, String> getJoinFieldTableAliasMap() {
    Map<String, String> map = new HashMap<>();
    map.put("supplier", "s");
    map.put("wid", "w");
    return map;
  }

  @Override
  public Map<String, OptionalJoinField> getOptionalJoinFields() {
    Map<String, OptionalJoinField> map = new HashMap<>();

    return map;
  }

  /**
   * 编号
   */
  private Long id;

  /**
   * 最小编号
   */
  private Long idMin;

  /**
   * 最大编号
   */
  private Long idMax;

  /**
   * 编号 比较(eq)
   */
  private Long idEq;
  /**
   * 编号 比较(neq)
   */
  private Long idNeq;
  /**
   * 编号 比较(gt)
   */
  private Long idGt;
  /**
   * 编号 比较(gte)
   */
  private Long idGte;
  /**
   * 编号 比较(lt)
   */
  private Long idLt;
  /**
   * 编号 比较(lte)
   */
  private Long idLte;
  /**
   * 编号 比较(contains)
   */
  private Long idContains;
  /**
   * 编号 比较(notcontains)
   */
  private Long idNotcontains;
  /**
   * 编号 比较(startswith)
   */
  private Long idStartswith;
  /**
   * 编号 比较(endswith)
   */
  private Long idEndswith;
  /**
   * 编号 比较(isnull)
   */
  private Boolean idIsnull;
  /**
   * 编号 比较(isnotnull)
   */
  private Boolean idIsnotnull;

  /**
   * 单号(模糊搜索)
   */
  private String processSn;

  /**
   * 单号 比较(eq)
   */
  private String processSnEq;
  /**
   * 单号 比较(neq)
   */
  private String processSnNeq;
  /**
   * 单号 比较(gt)
   */
  private String processSnGt;
  /**
   * 单号 比较(gte)
   */
  private String processSnGte;
  /**
   * 单号 比较(lt)
   */
  private String processSnLt;
  /**
   * 单号 比较(lte)
   */
  private String processSnLte;
  /**
   * 单号 比较(contains)
   */
  private String processSnContains;
  /**
   * 单号 比较(notcontains)
   */
  private String processSnNotcontains;
  /**
   * 单号 比较(startswith)
   */
  private String processSnStartswith;
  /**
   * 单号 比较(endswith)
   */
  private String processSnEndswith;
  /**
   * 单号 比较(isnull)
   */
  private Boolean processSnIsnull;
  /**
   * 单号 比较(isnotnull)
   */
  private Boolean processSnIsnotnull;

  /**
   * 单号(精确搜索)
   */
  private List<String> processSnInList;

  /**
   * 供应商
   */
  private Long supplier;

  /**
   * 供应商 比较(eq)
   */
  private Long supplierEq;
  /**
   * 供应商 比较(neq)
   */
  private Long supplierNeq;
  /**
   * 供应商 比较(gt)
   */
  private Long supplierGt;
  /**
   * 供应商 比较(gte)
   */
  private Long supplierGte;
  /**
   * 供应商 比较(lt)
   */
  private Long supplierLt;
  /**
   * 供应商 比较(lte)
   */
  private Long supplierLte;
  /**
   * 供应商 比较(contains)
   */
  private Long supplierContains;
  /**
   * 供应商 比较(notcontains)
   */
  private Long supplierNotcontains;
  /**
   * 供应商 比较(startswith)
   */
  private Long supplierStartswith;
  /**
   * 供应商 比较(endswith)
   */
  private Long supplierEndswith;
  /**
   * 供应商 比较(isnull)
   */
  private Boolean supplierIsnull;
  /**
   * 供应商 比较(isnotnull)
   */
  private Boolean supplierIsnotnull;
  /**
   * 供应商的供应商简称 比较(eq)
   */
  private String supplierSupplierNameEq;
  /**
   * 供应商的供应商简称 比较(neq)
   */
  private String supplierSupplierNameNeq;
  /**
   * 供应商的供应商简称 比较(gt)
   */
  private String supplierSupplierNameGt;
  /**
   * 供应商的供应商简称 比较(gte)
   */
  private String supplierSupplierNameGte;
  /**
   * 供应商的供应商简称 比较(lt)
   */
  private String supplierSupplierNameLt;
  /**
   * 供应商的供应商简称 比较(lte)
   */
  private String supplierSupplierNameLte;
  /**
   * 供应商的供应商简称 比较(contains)
   */
  private String supplierSupplierNameContains;
  /**
   * 供应商的供应商简称 比较(notcontains)
   */
  private String supplierSupplierNameNotcontains;
  /**
   * 供应商的供应商简称 比较(startswith)
   */
  private String supplierSupplierNameStartswith;
  /**
   * 供应商的供应商简称 比较(endswith)
   */
  private String supplierSupplierNameEndswith;
  /**
   * 供应商的供应商简称 比较(isnull)
   */
  private Boolean supplierSupplierNameIsnull;
  /**
   * 供应商的供应商简称 比较(isnotnull)
   */
  private Boolean supplierSupplierNameIsnotnull;

  /**
   * 供应商(范围搜索)
   */
  private List<Long> supplierInList;

  /**
   * 最早加工日期
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date pdateStart;

  /**
   * 最晚加工日期
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date pdateEnd;

  /**
   * 加工日期 比较(eq)
   */
  private Date pdateEq;
  /**
   * 加工日期 比较(neq)
   */
  private Date pdateNeq;
  /**
   * 加工日期 比较(gt)
   */
  private Date pdateGt;
  /**
   * 加工日期 比较(gte)
   */
  private Date pdateGte;
  /**
   * 加工日期 比较(lt)
   */
  private Date pdateLt;
  /**
   * 加工日期 比较(lte)
   */
  private Date pdateLte;
  /**
   * 加工日期 比较(contains)
   */
  private Date pdateContains;
  /**
   * 加工日期 比较(notcontains)
   */
  private Date pdateNotcontains;
  /**
   * 加工日期 比较(startswith)
   */
  private Date pdateStartswith;
  /**
   * 加工日期 比较(endswith)
   */
  private Date pdateEndswith;
  /**
   * 加工日期 比较(isnull)
   */
  private Boolean pdateIsnull;
  /**
   * 加工日期 比较(isnotnull)
   */
  private Boolean pdateIsnotnull;

  /**
   * 仓库
   */
  private Long wid;

  /**
   * 仓库 比较(eq)
   */
  private Long widEq;
  /**
   * 仓库 比较(neq)
   */
  private Long widNeq;
  /**
   * 仓库 比较(gt)
   */
  private Long widGt;
  /**
   * 仓库 比较(gte)
   */
  private Long widGte;
  /**
   * 仓库 比较(lt)
   */
  private Long widLt;
  /**
   * 仓库 比较(lte)
   */
  private Long widLte;
  /**
   * 仓库 比较(contains)
   */
  private Long widContains;
  /**
   * 仓库 比较(notcontains)
   */
  private Long widNotcontains;
  /**
   * 仓库 比较(startswith)
   */
  private Long widStartswith;
  /**
   * 仓库 比较(endswith)
   */
  private Long widEndswith;
  /**
   * 仓库 比较(isnull)
   */
  private Boolean widIsnull;
  /**
   * 仓库 比较(isnotnull)
   */
  private Boolean widIsnotnull;
  /**
   * 仓库的仓库名称 比较(eq)
   */
  private String widNameEq;
  /**
   * 仓库的仓库名称 比较(neq)
   */
  private String widNameNeq;
  /**
   * 仓库的仓库名称 比较(gt)
   */
  private String widNameGt;
  /**
   * 仓库的仓库名称 比较(gte)
   */
  private String widNameGte;
  /**
   * 仓库的仓库名称 比较(lt)
   */
  private String widNameLt;
  /**
   * 仓库的仓库名称 比较(lte)
   */
  private String widNameLte;
  /**
   * 仓库的仓库名称 比较(contains)
   */
  private String widNameContains;
  /**
   * 仓库的仓库名称 比较(notcontains)
   */
  private String widNameNotcontains;
  /**
   * 仓库的仓库名称 比较(startswith)
   */
  private String widNameStartswith;
  /**
   * 仓库的仓库名称 比较(endswith)
   */
  private String widNameEndswith;
  /**
   * 仓库的仓库名称 比较(isnull)
   */
  private Boolean widNameIsnull;
  /**
   * 仓库的仓库名称 比较(isnotnull)
   */
  private Boolean widNameIsnotnull;

  /**
   * 仓库(范围搜索)
   */
  private List<Long> widInList;

  /**
   * 最早创建时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date createTimeStart;

  /**
   * 最晚创建时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date createTimeEnd;

  /**
   * 创建时间 比较(eq)
   */
  private Date createTimeEq;
  /**
   * 创建时间 比较(neq)
   */
  private Date createTimeNeq;
  /**
   * 创建时间 比较(gt)
   */
  private Date createTimeGt;
  /**
   * 创建时间 比较(gte)
   */
  private Date createTimeGte;
  /**
   * 创建时间 比较(lt)
   */
  private Date createTimeLt;
  /**
   * 创建时间 比较(lte)
   */
  private Date createTimeLte;
  /**
   * 创建时间 比较(contains)
   */
  private Date createTimeContains;
  /**
   * 创建时间 比较(notcontains)
   */
  private Date createTimeNotcontains;
  /**
   * 创建时间 比较(startswith)
   */
  private Date createTimeStartswith;
  /**
   * 创建时间 比较(endswith)
   */
  private Date createTimeEndswith;
  /**
   * 创建时间 比较(isnull)
   */
  private Boolean createTimeIsnull;
  /**
   * 创建时间 比较(isnotnull)
   */
  private Boolean createTimeIsnotnull;

  /**
   * 创建人
   */
  private Long createUser;

  /**
   * 最小创建人
   */
  private Long createUserMin;

  /**
   * 最大创建人
   */
  private Long createUserMax;

  /**
   * 创建人 比较(eq)
   */
  private Long createUserEq;
  /**
   * 创建人 比较(neq)
   */
  private Long createUserNeq;
  /**
   * 创建人 比较(gt)
   */
  private Long createUserGt;
  /**
   * 创建人 比较(gte)
   */
  private Long createUserGte;
  /**
   * 创建人 比较(lt)
   */
  private Long createUserLt;
  /**
   * 创建人 比较(lte)
   */
  private Long createUserLte;
  /**
   * 创建人 比较(contains)
   */
  private Long createUserContains;
  /**
   * 创建人 比较(notcontains)
   */
  private Long createUserNotcontains;
  /**
   * 创建人 比较(startswith)
   */
  private Long createUserStartswith;
  /**
   * 创建人 比较(endswith)
   */
  private Long createUserEndswith;
  /**
   * 创建人 比较(isnull)
   */
  private Boolean createUserIsnull;
  /**
   * 创建人 比较(isnotnull)
   */
  private Boolean createUserIsnotnull;

  /**
   * 最早更新时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date lastUpdateTimeStart;

  /**
   * 最晚更新时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date lastUpdateTimeEnd;

  /**
   * 更新时间 比较(eq)
   */
  private Date lastUpdateTimeEq;
  /**
   * 更新时间 比较(neq)
   */
  private Date lastUpdateTimeNeq;
  /**
   * 更新时间 比较(gt)
   */
  private Date lastUpdateTimeGt;
  /**
   * 更新时间 比较(gte)
   */
  private Date lastUpdateTimeGte;
  /**
   * 更新时间 比较(lt)
   */
  private Date lastUpdateTimeLt;
  /**
   * 更新时间 比较(lte)
   */
  private Date lastUpdateTimeLte;
  /**
   * 更新时间 比较(contains)
   */
  private Date lastUpdateTimeContains;
  /**
   * 更新时间 比较(notcontains)
   */
  private Date lastUpdateTimeNotcontains;
  /**
   * 更新时间 比较(startswith)
   */
  private Date lastUpdateTimeStartswith;
  /**
   * 更新时间 比较(endswith)
   */
  private Date lastUpdateTimeEndswith;
  /**
   * 更新时间 比较(isnull)
   */
  private Boolean lastUpdateTimeIsnull;
  /**
   * 更新时间 比较(isnotnull)
   */
  private Boolean lastUpdateTimeIsnotnull;

  /**
   * 更新人
   */
  private Long lastUpdateUser;

  /**
   * 最小更新人
   */
  private Long lastUpdateUserMin;

  /**
   * 最大更新人
   */
  private Long lastUpdateUserMax;

  /**
   * 更新人 比较(eq)
   */
  private Long lastUpdateUserEq;
  /**
   * 更新人 比较(neq)
   */
  private Long lastUpdateUserNeq;
  /**
   * 更新人 比较(gt)
   */
  private Long lastUpdateUserGt;
  /**
   * 更新人 比较(gte)
   */
  private Long lastUpdateUserGte;
  /**
   * 更新人 比较(lt)
   */
  private Long lastUpdateUserLt;
  /**
   * 更新人 比较(lte)
   */
  private Long lastUpdateUserLte;
  /**
   * 更新人 比较(contains)
   */
  private Long lastUpdateUserContains;
  /**
   * 更新人 比较(notcontains)
   */
  private Long lastUpdateUserNotcontains;
  /**
   * 更新人 比较(startswith)
   */
  private Long lastUpdateUserStartswith;
  /**
   * 更新人 比较(endswith)
   */
  private Long lastUpdateUserEndswith;
  /**
   * 更新人 比较(isnull)
   */
  private Boolean lastUpdateUserIsnull;
  /**
   * 更新人 比较(isnotnull)
   */
  private Boolean lastUpdateUserIsnotnull;

  /**
   * 单据类型
   */
  private String type;

  /**
   * 单据类型 比较(eq)
   */
  private String typeEq;
  /**
   * 单据类型 比较(neq)
   */
  private String typeNeq;
  /**
   * 单据类型 比较(gt)
   */
  private String typeGt;
  /**
   * 单据类型 比较(gte)
   */
  private String typeGte;
  /**
   * 单据类型 比较(lt)
   */
  private String typeLt;
  /**
   * 单据类型 比较(lte)
   */
  private String typeLte;
  /**
   * 单据类型 比较(contains)
   */
  private String typeContains;
  /**
   * 单据类型 比较(notcontains)
   */
  private String typeNotcontains;
  /**
   * 单据类型 比较(startswith)
   */
  private String typeStartswith;
  /**
   * 单据类型 比较(endswith)
   */
  private String typeEndswith;
  /**
   * 单据类型 比较(isnull)
   */
  private Boolean typeIsnull;
  /**
   * 单据类型 比较(isnotnull)
   */
  private Boolean typeIsnotnull;

  /**
   * 单据类型(精确搜索)
   */
  private List<String> typeInList;

  /**
   * 状态
   */
  private String status;

  /**
   * 状态 比较(eq)
   */
  private String statusEq;
  /**
   * 状态 比较(neq)
   */
  private String statusNeq;
  /**
   * 状态 比较(gt)
   */
  private String statusGt;
  /**
   * 状态 比较(gte)
   */
  private String statusGte;
  /**
   * 状态 比较(lt)
   */
  private String statusLt;
  /**
   * 状态 比较(lte)
   */
  private String statusLte;
  /**
   * 状态 比较(contains)
   */
  private String statusContains;
  /**
   * 状态 比较(notcontains)
   */
  private String statusNotcontains;
  /**
   * 状态 比较(startswith)
   */
  private String statusStartswith;
  /**
   * 状态 比较(endswith)
   */
  private String statusEndswith;
  /**
   * 状态 比较(isnull)
   */
  private Boolean statusIsnull;
  /**
   * 状态 比较(isnotnull)
   */
  private Boolean statusIsnotnull;

  /**
   * 状态(精确搜索)
   */
  private List<String> statusInList;

  /**
   * 推送应付单
   */
  private String generateAp;

  /**
   * 推送应付单 比较(eq)
   */
  private String generateApEq;
  /**
   * 推送应付单 比较(neq)
   */
  private String generateApNeq;
  /**
   * 推送应付单 比较(gt)
   */
  private String generateApGt;
  /**
   * 推送应付单 比较(gte)
   */
  private String generateApGte;
  /**
   * 推送应付单 比较(lt)
   */
  private String generateApLt;
  /**
   * 推送应付单 比较(lte)
   */
  private String generateApLte;
  /**
   * 推送应付单 比较(contains)
   */
  private String generateApContains;
  /**
   * 推送应付单 比较(notcontains)
   */
  private String generateApNotcontains;
  /**
   * 推送应付单 比较(startswith)
   */
  private String generateApStartswith;
  /**
   * 推送应付单 比较(endswith)
   */
  private String generateApEndswith;
  /**
   * 推送应付单 比较(isnull)
   */
  private Boolean generateApIsnull;
  /**
   * 推送应付单 比较(isnotnull)
   */
  private Boolean generateApIsnotnull;

  /**
   * 推送应付单(精确搜索)
   */
  private List<String> generateApInList;

  /**
   * 备注(模糊搜索)
   */
  private String remarks;

  /**
   * 备注 比较(eq)
   */
  private String remarksEq;
  /**
   * 备注 比较(neq)
   */
  private String remarksNeq;
  /**
   * 备注 比较(gt)
   */
  private String remarksGt;
  /**
   * 备注 比较(gte)
   */
  private String remarksGte;
  /**
   * 备注 比较(lt)
   */
  private String remarksLt;
  /**
   * 备注 比较(lte)
   */
  private String remarksLte;
  /**
   * 备注 比较(contains)
   */
  private String remarksContains;
  /**
   * 备注 比较(notcontains)
   */
  private String remarksNotcontains;
  /**
   * 备注 比较(startswith)
   */
  private String remarksStartswith;
  /**
   * 备注 比较(endswith)
   */
  private String remarksEndswith;
  /**
   * 备注 比较(isnull)
   */
  private Boolean remarksIsnull;
  /**
   * 备注 比较(isnotnull)
   */
  private Boolean remarksIsnotnull;

  /**
   * 备注(精确搜索)
   */
  private List<String> remarksInList;

  /**
   * 入库单(模糊搜索)
   */
  private String whid;

  /**
   * 入库单 比较(eq)
   */
  private String whidEq;
  /**
   * 入库单 比较(neq)
   */
  private String whidNeq;
  /**
   * 入库单 比较(gt)
   */
  private String whidGt;
  /**
   * 入库单 比较(gte)
   */
  private String whidGte;
  /**
   * 入库单 比较(lt)
   */
  private String whidLt;
  /**
   * 入库单 比较(lte)
   */
  private String whidLte;
  /**
   * 入库单 比较(contains)
   */
  private String whidContains;
  /**
   * 入库单 比较(notcontains)
   */
  private String whidNotcontains;
  /**
   * 入库单 比较(startswith)
   */
  private String whidStartswith;
  /**
   * 入库单 比较(endswith)
   */
  private String whidEndswith;
  /**
   * 入库单 比较(isnull)
   */
  private Boolean whidIsnull;
  /**
   * 入库单 比较(isnotnull)
   */
  private Boolean whidIsnotnull;

  /**
   * 入库单(精确搜索)
   */
  private List<String> whidInList;

  /**
   * 入库单号(模糊搜索)
   */
  private String wcode;

  /**
   * 入库单号 比较(eq)
   */
  private String wcodeEq;
  /**
   * 入库单号 比较(neq)
   */
  private String wcodeNeq;
  /**
   * 入库单号 比较(gt)
   */
  private String wcodeGt;
  /**
   * 入库单号 比较(gte)
   */
  private String wcodeGte;
  /**
   * 入库单号 比较(lt)
   */
  private String wcodeLt;
  /**
   * 入库单号 比较(lte)
   */
  private String wcodeLte;
  /**
   * 入库单号 比较(contains)
   */
  private String wcodeContains;
  /**
   * 入库单号 比较(notcontains)
   */
  private String wcodeNotcontains;
  /**
   * 入库单号 比较(startswith)
   */
  private String wcodeStartswith;
  /**
   * 入库单号 比较(endswith)
   */
  private String wcodeEndswith;
  /**
   * 入库单号 比较(isnull)
   */
  private Boolean wcodeIsnull;
  /**
   * 入库单号 比较(isnotnull)
   */
  private Boolean wcodeIsnotnull;

  /**
   * 入库单号(精确搜索)
   */
  private List<String> wcodeInList;

  /**
   * 表单名称
   */
  private String formName;

  /**
   * 工作流状态
   */
  private Integer wfStatus;
}
